JavaScript在過去是一種單純的直譯語言,JavaScript interpreter運行source code並逐行執行,簡單來說就是同時讀取和執行所有的程式碼,而source code轉換成machine code的步驟僅僅是發生在執行程式碼之前,並非像編譯語言一樣,是提前將source code轉換成machine code再將其寫進一個可移植的文件中,而這個文件可以拿到任何電腦中執行,因此直譯語言相較於編譯語言來說,跑起來是相當慢的。
對於過去的JavaScript來說,使用直譯的方式並沒什麼問題,但對現代JavaScript和目前成熟的網頁應用程式來說,低性能這件事已經不再是可以被接受的了,為了改善這個問題,現代JavaScript引擎混合了直譯和編譯兩種方式來取代單純直譯的方式,稱作即時編譯(Just-in-time compilation)。
即時編譯這種方式基本上是一次將source code編譯成machine code,但它並沒有可移植的文件,而是在編譯後立即執行程式碼,這種方式相較單純直譯的方式來說性能上快得多了。